home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
dev
/
docs
/
asmkurs.lha
/
startup.i
< prev
Wrap
Text File
|
1993-09-12
|
924b
|
38 lines
include "exec/exec.i"
include "libraries/exec_lib.i"
include "libraries/dosextens.i"
Rep: movem.l d0/a0,-(sp) ;save initial values
clr.l returnMsg
sub.l a1,a1
move.l $4.w,a6
jsr _LVOFindTask(a6) ;find us
move.l d0,a4
tst.l pr_CLI(a4)
beq.s fromWorkbench
movem.l (sp)+,d0/a0 ;restore regs
bra end_startup ;and run the user prog
fromWorkbench:
lea pr_MsgPort(a4),a0
move.l $4.w,a6
jsr _LVOWaitPort(A6) ;wait for a message
lea pr_MsgPort(a4),a0
jsr _LVOGetMsg(A6) ;then get it
move.l d0,returnMsg ;save it for later reply
movem.l (sp)+,d0/a0 ;restore
end_startup:
bsr.s Init ;call our program
move.l d0,-(sp) ;save it
tst.l returnMsg
beq.s exitToDOS ;if I was a CLI
move.l $4.w,a6
jsr _LVOForbid(a6)
move.l returnMsg(pc),a1
jsr _LVOPermit(a6)
exitToDOS:
move.l (sp)+,d0 ;exit code
rts
returnMsg: dc.l 0
************************************************************************